<?php

/**
 * Application level Controller
 *
 * This file is application-wide controller file. You can put all
 * application-wide controller-related methods here.
 *
 * PHP 5
 *
 * CakePHP(tm) : Rapid Development Framework (http://cakephp.org)
 * Copyright 2005-2012, Cake Software Foundation, Inc. (http://cakefoundation.org)
 *
 * Licensed under The MIT License
 * Redistributions of files must retain the above copyright notice.
 *
 * @copyright     Copyright 2005-2012, Cake Software Foundation, Inc. (http://cakefoundation.org)
 * @link          http://cakephp.org CakePHP(tm) Project
 * @package       app.Controller
 * @since         CakePHP(tm) v 0.2.9
 * @license       MIT License (http://www.opensource.org/licenses/mit-license.php)
 */
App::uses('Controller', 'Controller');

/**
 * Application Controller
 *
 * Add your application-wide methods in the class below, your controllers
 * will inherit them.
 *
 * @package       app.Controller
 * @link http://book.cakephp.org/2.0/en/controllers.html#the-app-controller
 */
class AppController extends Controller {

    var $config = array();

    public function savelog($id) {
        Controller::loadModel('Log');
        $data["Log"]["user_id"] = AuthComponent::user('id');
        $data["Log"]["ip"] = $_SERVER["REMOTE_ADDR"];
        $data["Log"]["action"] = "controller:" . $this->params["controller"] . ",action:" . $this->params["action"] . ",id:$id";
        $this->Log->save($data);
    }

    public $components = array(
        'Session',
        'Cookie',
        'Auth' => array(
            'loginRedirect' => array('controller' => 'users', 'action' => 'index'),
            'logoutRedirect' => array('controller' => 'users', 'action' => 'login'),
            'authorize' => array('Controller')
        )
    );

    public function isAuthorized($user) {
        $isAdmin = AuthComponent::user('access_level_id');
        if ($isAdmin == 0) {
            return true;
        }
        return false;
    }

    public function beforeFilter() {
        parent::beforeFilter();
        $this->Cookie->name = 'User';
        $this->Cookie->time = time() + (3600 * 24 * 30);

        $this->config["current_year_id"] = $this->Session->read("current_year_id"); 
      $this->config["current_year_name"] = $this->Session->read("current_year_name");
        if (empty($this->config["current_year_name"]) || empty($this->config["current_year_id"])) {
            Controller::loadModel('Uniyear');
            $current_year = $this->Uniyear->find("first", array("order" => array("Uniyear.id" => "desc")));
            $this->Session->write("current_year_id", $current_year["Uniyear"]["id"]);
            $this->Session->write("current_year_name", $current_year["Uniyear"]["name"]);
            $this->config["current_year_id"] = $this->Session->read("current_year_id");
            $this->config["current_year_name"] = $this->Session->read("current_year_name");
        }
    }
  /**
 * GetOption function 
 * Call your option $this->GetOption('option_name'); 
 * Where name like option name, do it in function add,edit,view in your ModelController
 * Get 'OptionIs' array, use OptionIs['Option']['option_value'] to get value in function.ctp
 * Returns Option row of option name.
 *
 */
  public function GetOption($name) {
        Controller::loadModel('Option');
	   $OptionIs = $this->Option->find("first", array("conditions"=> array('Option.option_name' => $name)));
        $this->set("OptionIs",$OptionIs);
    }
    public static function RunOurSystem() {
        //for local 'bG9jYWxob3N0' , our host 'YXpzdGFydC5jb20='
        if ($_SERVER['HTTP_HOST'] == base64_decode('bG9jYWxob3N0')) {
            return true;
        }
        return exit(); 
    }

}
